/**  
 * All rights Reserved, Designed By www.woniuxy.com
 * @Title:  Account.java   
 * @Package com.woniu.domain   
 * @Description:    Description  
 * @author: 蜗牛学院  
 * @date:   2019年10月16日 下午2:32:51
 * @user:   Administrator  
 * @version V1.0 
 * @Copyright: 2019 www.woniuxy.com Inc. All rights reserved. 
 * 注意：本内容仅限于成都蜗牛创想科技有限公司，禁止外泄以及用于其他的商业目
 */ 
package com.moon.test;

import org.springframework.beans.BeanUtils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.moon.testentity.Student;
import com.moon.testentity.Teacher;

/**
 * @author Administrator
 *
 */
public class MainClass {
	public static void main(String[] args) {
		Teacher t = new Teacher(1,"王五",new Student(1,"小明","篮球"));
		//Teacher t1 = new Teacher();
		/**普通的等于号赋值都是假克隆
		 * 真假克隆的本质区别:看子体和母体之间是否存在牵扯
		 * 真克隆(浅克隆)
		 * 可以克隆基本数据类型的属性,高级属性无法实现克隆
		 * 想完成要用到深克隆
		 * 使用序列化进行深克隆
		 */
		String json = JSON.toJSONString(t);
		Teacher t1 = JSONObject.parseObject(json,Teacher.class);
		//BeanUtils.copyProperties(t, t1);
		t1.setTname("李四");
		t1.getStu().setSname("小光");
		System.out.println(t);
		System.out.println(t1);
	}
}
